home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
IDLIncludes
/
WorldScript.idl
< prev
Wrap
Text File
|
1996-05-01
|
5KB
|
150 lines
/*
File: WorldScript.idl
Contains: WorldScript I Interfaces.
Version: Technology: System 7.5
Release: Universal Interfaces 3.0d3 on Copland DR1
Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
*/
#ifndef __WORLDSCRIPT_IDL__
#define __WORLDSCRIPT_IDL__
#include <somobj.idl>
#include <somcls.idl>
#ifndef __TYPES_IDL__
#include <Types.idl>
#endif
#ifndef __TRAPS_IDL__
#include <Traps.idl>
#endif
#ifndef __QUICKDRAWTEXT_IDL__
#include <QuickdrawText.idl>
#endif
#ifdef __SOMIDL__
typedef UInt16 WSIOffset;
typedef UInt8 WSIByteCount;
typedef UInt8 WSIByteIndex;
/* offset from start of sub-table to row in state table */
typedef UInt16 WSIStateOffset;
typedef UInt32 WSITableOffset;
typedef UInt16 WSISubtableOffset;
typedef UInt16 WSIGlyphcode;
typedef UInt32 WSITableIdentifiers;
/**** L O O K U P T A B L E T Y P E S ****/
typedef unsigned short WSILookupTableFormat;
typedef unsigned short WSILookupValue;
/* An offset from the beginning of the lookup table */
typedef unsigned short WSILookupOffset;
/* FORMAT SPECIFIC DEFINITIONS */
/*
lookupSimpleArray:
This is a simple array which maps all glyphs in the font
to lookup values.
*/
typedef SOMTwoByteStruct WSILookupArrayHeader; /* Derived from a struct of 2 bytes in size */
/*
lookupTrimmedArray:
This is a single trimmed array which maps a single range
of glyhs in the font to lookup values.
*/
typedef SOMLargeStruct WSILookupTrimmedArrayHeader; /* Derived from a struct of 6 bytes in size */
/* The format specific part of the subtable header */
typedef SOMLargeStruct WSILookupFormatSpecificHeader; /* Derived from a struct of 8 bytes in size */
/* The overall subtable header */
typedef SOMLargeStruct WSILookupTableHeader; /* Derived from a struct of 8 bytes in size */
/**** G L Y P H E X P A N S I O N ****/
typedef unsigned short GlyphExpansionFormats;
typedef SOMFourByteStruct ExpandedGlyphCluster; /* Derived from a struct of 4 bytes in size */
typedef SOMFourByteStruct ExpandedGlyphOffset; /* Derived from a struct of 4 bytes in size */
typedef SOMLargeStruct GlyphExpansionStateTable; /* Derived from a struct of 6 bytes in size */
typedef SOMLargeStruct GlyphExpansionTable; /* Derived from a struct of 24 bytes in size */
/* Glyph-to-Character constants and types */
typedef unsigned short GlyphToCharLookupFormats;
typedef UInt8 GlyphToCharFontIndex;
typedef UInt8 QDGlyphcode;
typedef SOMLargeStruct GlyphToCharActionTable; /* Derived from a struct of 10 bytes in size */
typedef SOMFourByteStruct GlyphToCharActionHeader; /* Derived from a struct of 4 bytes in size */
typedef SOMLargeStruct GlyphToCharHeader; /* Derived from a struct of 16 bytes in size */
/*
JUSTIFICATION TYPES
WorldScript supports justification of text using insertion. The justification
table specifies a insertion string to insert between 2 specified glyphs.
Each combination of inter-glyph boundary can be assigned a justification priority,
the higher the priority the more justification strings inserted at that position.
The priorities for each inter-glyph boundary are specified by the justification table's
state table.
Special handling is done for scripts which use spaces to justify, because the width of
a space varies depending on the setting of SpaceExtra. This is why the number of spaces
per inserting string is specified in the justification table.
*/
typedef UInt8 WSIJustificationPriority;
typedef SOMFourByteStruct WSIJustificationStateEntry; /* Derived from a struct of 4 bytes in size */
typedef unsigned short WSIJustificationClasses;
typedef unsigned short WSIJustificationStates;
/* pre-multiplied: class# * sizeof(WSIJustificationStateEntry) */
typedef UInt8 WSIJustificationClassOffset;
typedef SOMLargeStruct WSIJustificationStateTable; /* Derived from a struct of 8 bytes in size */
/*
Last two fields of above structure - someday?
WSIJustificationClassOffset classes[up to 64 classes supported];
WSIJustificationStateEntry states[up to your heart's desire];
*/
typedef SOMLargeStruct WSIJustificationHeader; /* Derived from a struct of 20 bytes in size */
/* Line Layout's Property table version <11> */
/* pass as priorityWeight to JustifyWSILayout to use script's current just setting */
#endif /* __SOMIDL__ */
#endif /* __WORLDSCRIPT_IDL__ */